<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>2.分析生命周期</title>
		<!-- 引入开发版本的Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>当前的和是：{{sum}}</h2>
			<button @click="add">点我+1</button>
			<button @click="death">销毁当前的vm</button>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		const vm = new Vue({
			el:'#root',
			/* template:`
				<div>
					<h2>哈哈</h2>
				</div>
			`, */
			data:{
				sum:0
			},
			methods: {
				add(){
					console.log('add')
					this.sum++
				},
				death(){
					this.$destroy()
				}
			},
			watch:{
				sum(value){
					console.log('sum变了',value)
				}
			},

			//vm初始化之前
			beforeCreate(){
				console.log('---beforeCreate---')
				this.projectName = '电商系统' 
				// console.log(this)
				// debugger;
			},

			//vm初始化完毕
			created() {
				console.log('---created---')
				// console.log(this)
				// debugger;
			},
			
			//挂载之前
			beforeMount() {
				console.log('---beforeMount---')
				// document.querySelector('h2').innerHTML = '哈哈' //此处操作DOM最终是无效的
				// debugger;
			},
			
			//挂载完毕
			mounted() {
				console.log('---mounted---')
				// this.add()
				// document.querySelector('h2').innerHTML = '哈哈' //此处操作DOM是有效的
				// debugger;
			},

			//更新之前
			beforeUpdate() {
				console.log('---beforeUpdate---')
				// console.log(this.sum)
				// debugger;
			},

			//更新完毕
			updated() {
				console.log('---updated---')
				// console.log(this.sum)
				// debugger;
			},
			
			//销毁之前（vm）
			beforeDestroy() {
				console.log('---beforeDestroy---')
				this.add()
				// console.log(this)
				// debugger;
			},
			
			//销毁完毕
			destroyed() {
				console.log('---destroyed---')
				console.log(this)
			},
		})
		
	</script>
</html>